lecture 6
library(ggplot2)
library(dplyr)
mpg %>% print(n = 5)
ggplot(data = mpg) +geom_point(mapping = aes(x = displ, y = hwy,color = class))

ggplot(data = mpg) +geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv))

ggplot(data = mpg, mapping = aes(x = displ, y = hwy, color = drv)) + geom_point() + geom_smooth(mapping = aes(linetype = drv))

ggplot(data = mpg,mapping = aes(x = displ, y = hwy)) + geom_smooth() +geom_point( )

diamonds %>% print(5)
ggplot(data = diamonds) + stat_count(mapping = aes(x = cut))

ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut))

ggplot(data = diamonds) + stat_summary(
mapping = aes(x = cut, y = depth),
fun.ymin = min,
fun.ymax = max,
fun.y = median
)

ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))

demo <- tribble(~cut, ~freq,
"Fair", 19020,
"Good", 18050,
"Very Good", 12082,
"Premium", 13791,
"Ideal", 21551)
ggplot(data = demo) +geom_bar(mapping = aes(x = cut, y = freq), stat = "identity")

ggplot(data = diamonds, mapping = aes(x = cut, fill = clarity)) + geom_bar( position = "identity")

ggplot(data = diamonds, mapping = aes(x = cut, fill = clarity)) + geom_bar( position = "stack")

"Increasing engine size is related to decreasing fuel economy." %>% stringr::str_wrap(width = 40) %>%
writeLines()
Increasing engine size is related to
decreasing fuel economy.
ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class))

ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class))+scale_x_continuous()+scale_y_continuous() + scale_color_discrete()

presidential %>% print(5)
presidential %>%
mutate(id = 33 + row_number()) %>% ggplot(aes(start, id)) + geom_point() +
geom_segment(aes(xend = end, yend = id)) +
scale_x_date(NULL, breaks = presidential$start, date_labels = "'%y")

ggplot(mpg, aes(displ, hwy)) +
geom_point(aes(color = class)) +
geom_smooth(se = FALSE) +
theme(legend.position = "bottom") +
guides(color = guide_legend(nrow = 1, override.aes = list(size = 4)))

df <- data.frame(x = runif(100), y = runif(100),
z1 = rnorm(100), z2 = abs(rnorm(100)))
ggplot(df, aes(x, y)) + geom_point(aes(color = z2), size = 3)

ggplot(df, aes(x, y)) + geom_point(aes(color = z1), size = 3) + scale_color_gradient2()

library(hexbin)
df <- tibble(x = rnorm(10000), y = rnorm(10000))
ggplot(df, aes(x, y)) + geom_hex() + coord_fixed()

ggplot(df, aes(x, y)) + geom_hex() + coord_fixed() + viridis::scale_fill_viridis()

suv <- mpg %>% filter(class == "suv")
compact <- mpg %>% filter(class == "compact")
ggplot(suv, aes(displ, hwy, color = drv)) + geom_point()

ggplot(compact, aes(displ, hwy, color = drv)) + geom_point()

set scale limits
x_scale <- scale_x_continuous(limits = range(mpg$displ))
y_scale <- scale_y_continuous(limits = range(mpg$hwy))
col_scale <- scale_color_discrete(limits = unique(mpg$drv))
ggplot(suv, aes(displ, hwy, color = drv)) + geom_point() + x_scale + y_scale + col_scale

ggplot(compact, aes(displ, hwy, color = drv)) + geom_point() + x_scale + y_scale + col_scale + theme_dark()

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCmF1dGhvcjogSHVpcWlhbiBZdQotLS0KCmxlY3R1cmUgNgoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShkcGx5cikKbXBnICU+JSBwcmludChuID0gNSkKZ2dwbG90KGRhdGEgPSBtcGcpICtnZW9tX3BvaW50KG1hcHBpbmcgPSBhZXMoeCA9IGRpc3BsLCB5ID0gaHd5LGNvbG9yID0gY2xhc3MpKQpnZ3Bsb3QoZGF0YSA9IG1wZykgK2dlb21fc21vb3RoKG1hcHBpbmcgPSBhZXMoeCA9IGRpc3BsLCB5ID0gaHd5LCBsaW5ldHlwZSA9IGRydikpCmBgYAoKYGBge3J9CmdncGxvdChkYXRhID0gbXBnLCBtYXBwaW5nID0gYWVzKHggPSBkaXNwbCwgeSA9IGh3eSwgY29sb3IgPSBkcnYpKSArIGdlb21fcG9pbnQoKSArIGdlb21fc21vb3RoKG1hcHBpbmcgPSBhZXMobGluZXR5cGUgPSBkcnYpKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IG1wZyxtYXBwaW5nID0gYWVzKHggPSBkaXNwbCwgeSA9IGh3eSkpICsgZ2VvbV9zbW9vdGgoKSArZ2VvbV9wb2ludCggKQpgYGAKYGBge3J9CmRpYW1vbmRzICU+JSBwcmludCg1KQpgYGAKYGBge3J9CmdncGxvdChkYXRhID0gZGlhbW9uZHMpICsgc3RhdF9jb3VudChtYXBwaW5nID0gYWVzKHggPSBjdXQpKQpnZ3Bsb3QoZGF0YSA9IGRpYW1vbmRzKSArIGdlb21fYmFyKG1hcHBpbmcgPSBhZXMoeCA9IGN1dCkpCmBgYApgYGB7cn0KZ2dwbG90KGRhdGEgPSBkaWFtb25kcykgKyBzdGF0X3N1bW1hcnkoCm1hcHBpbmcgPSBhZXMoeCA9IGN1dCwgeSA9IGRlcHRoKSwgCmZ1bi55bWluID0gbWluLApmdW4ueW1heCA9IG1heCwKZnVuLnkgPSBtZWRpYW4KKQpgYGAKYGBge3J9CmdncGxvdChkYXRhID0gZGlhbW9uZHMpICsKZ2VvbV9iYXIobWFwcGluZyA9IGFlcyh4ID0gY3V0LCB5ID0gLi5wcm9wLi4sIGdyb3VwID0gMSkpCmBgYAoKYGBge3J9CmRlbW8gPC0gdHJpYmJsZSh+Y3V0LCAgICAgICAgIH5mcmVxLAogICAgICAgICAgICAgICAgIkZhaXIiLCAgICAgICAgMTkwMjAsCiAgICAgICAgICAgICAgICAiR29vZCIsICAgICAgIDE4MDUwLAogICAgICAgICAgICAgICAgIlZlcnkgR29vZCIsICAxMjA4MiwKICAgICAgICAgICAgICAgICJQcmVtaXVtIiwgICAgMTM3OTEsCiAgICAgICAgICAgICAgICAiSWRlYWwiLCAgICAgIDIxNTUxKQpnZ3Bsb3QoZGF0YSA9IGRlbW8pICtnZW9tX2JhcihtYXBwaW5nID0gYWVzKHggPSBjdXQsIHkgPSBmcmVxKSwgc3RhdCA9ICJpZGVudGl0eSIpCmBgYApgYGB7cn0KIGdncGxvdChkYXRhID0gZGlhbW9uZHMsIG1hcHBpbmcgPSBhZXMoeCA9IGN1dCwgZmlsbCA9IGNsYXJpdHkpKSArIGdlb21fYmFyKCBwb3NpdGlvbiA9ICJpZGVudGl0eSIpCiBnZ3Bsb3QoZGF0YSA9IGRpYW1vbmRzLCBtYXBwaW5nID0gYWVzKHggPSBjdXQsIGZpbGwgPSBjbGFyaXR5KSkgKyBnZW9tX2JhciggcG9zaXRpb24gPSAic3RhY2siKQpgYGAKYGBge3J9CiAiSW5jcmVhc2luZyBlbmdpbmUgc2l6ZSBpcyByZWxhdGVkIHRvIGRlY3JlYXNpbmcgZnVlbCBlY29ub215LiIgJT4lIHN0cmluZ3I6OnN0cl93cmFwKHdpZHRoID0gNDApICU+JQp3cml0ZUxpbmVzKCkKYGBgCmBgYHtyfQpnZ3Bsb3QobXBnLCBhZXMoZGlzcGwsIGh3eSkpICsgZ2VvbV9wb2ludChhZXMoY29sb3IgPSBjbGFzcykpCmdncGxvdChtcGcsIGFlcyhkaXNwbCwgaHd5KSkgKyBnZW9tX3BvaW50KGFlcyhjb2xvciA9IGNsYXNzKSkrc2NhbGVfeF9jb250aW51b3VzKCkrc2NhbGVfeV9jb250aW51b3VzKCkgKyBzY2FsZV9jb2xvcl9kaXNjcmV0ZSgpCmBgYApgYGB7cn0KcHJlc2lkZW50aWFsICU+JSBwcmludCg1KQpgYGAKYGBge3J9CiBwcmVzaWRlbnRpYWwgJT4lCm11dGF0ZShpZCA9IDMzICsgcm93X251bWJlcigpKSAlPiUgZ2dwbG90KGFlcyhzdGFydCwgaWQpKSArIGdlb21fcG9pbnQoKSArCmdlb21fc2VnbWVudChhZXMoeGVuZCA9IGVuZCwgeWVuZCA9IGlkKSkgKwpzY2FsZV94X2RhdGUoTlVMTCwgYnJlYWtzID0gcHJlc2lkZW50aWFsJHN0YXJ0LCBkYXRlX2xhYmVscyA9ICInJXkiKQpgYGAKYGBge3J9CmdncGxvdChtcGcsIGFlcyhkaXNwbCwgaHd5KSkgKwpnZW9tX3BvaW50KGFlcyhjb2xvciA9IGNsYXNzKSkgKwpnZW9tX3Ntb290aChzZSA9IEZBTFNFKSArCnRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJib3R0b20iKSAgKwpndWlkZXMoY29sb3IgPSBndWlkZV9sZWdlbmQobnJvdyA9IDEsIG92ZXJyaWRlLmFlcyA9IGxpc3Qoc2l6ZSA9IDQpKSkKYGBgCmBgYHtyfQogZGYgPC0gZGF0YS5mcmFtZSh4ID0gcnVuaWYoMTAwKSwgeSA9IHJ1bmlmKDEwMCksCnoxID0gcm5vcm0oMTAwKSwgejIgPSBhYnMocm5vcm0oMTAwKSkpCmdncGxvdChkZiwgYWVzKHgsIHkpKSArIGdlb21fcG9pbnQoYWVzKGNvbG9yID0gejIpLCBzaXplID0gMykKZ2dwbG90KGRmLCBhZXMoeCwgeSkpICsgZ2VvbV9wb2ludChhZXMoY29sb3IgPSB6MSksIHNpemUgPSAzKSArIHNjYWxlX2NvbG9yX2dyYWRpZW50MigpCmBgYAoKYGBge3J9CmxpYnJhcnkoaGV4YmluKQpkZiA8LSB0aWJibGUoeCA9IHJub3JtKDEwMDAwKSwgeSA9IHJub3JtKDEwMDAwKSkKZ2dwbG90KGRmLCBhZXMoeCwgeSkpICsgZ2VvbV9oZXgoKSArIGNvb3JkX2ZpeGVkKCkKZ2dwbG90KGRmLCBhZXMoeCwgeSkpICsgZ2VvbV9oZXgoKSArIGNvb3JkX2ZpeGVkKCkgKyB2aXJpZGlzOjpzY2FsZV9maWxsX3ZpcmlkaXMoKQpgYGAKCmBgYHtyfQpzdXYgPC0gbXBnICU+JSBmaWx0ZXIoY2xhc3MgPT0gInN1diIpCmNvbXBhY3QgPC0gbXBnICU+JSBmaWx0ZXIoY2xhc3MgPT0gImNvbXBhY3QiKQpnZ3Bsb3Qoc3V2LCBhZXMoZGlzcGwsIGh3eSwgY29sb3IgPSBkcnYpKSArIGdlb21fcG9pbnQoKQpnZ3Bsb3QoY29tcGFjdCwgYWVzKGRpc3BsLCBod3ksIGNvbG9yID0gZHJ2KSkgKyBnZW9tX3BvaW50KCkKYGBgCgoKc2V0IHNjYWxlIGxpbWl0cwoKYGBge3J9Cnhfc2NhbGUgPC0gc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IHJhbmdlKG1wZyRkaXNwbCkpIAp5X3NjYWxlIDwtIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSByYW5nZShtcGckaHd5KSkgCmNvbF9zY2FsZSA8LSBzY2FsZV9jb2xvcl9kaXNjcmV0ZShsaW1pdHMgPSB1bmlxdWUobXBnJGRydikpCmdncGxvdChzdXYsIGFlcyhkaXNwbCwgaHd5LCBjb2xvciA9IGRydikpICsgZ2VvbV9wb2ludCgpICsgeF9zY2FsZSArIHlfc2NhbGUgKyBjb2xfc2NhbGUKZ2dwbG90KGNvbXBhY3QsIGFlcyhkaXNwbCwgaHd5LCBjb2xvciA9IGRydikpICsgZ2VvbV9wb2ludCgpICsgeF9zY2FsZSArIHlfc2NhbGUgKyBjb2xfc2NhbGUgKyB0aGVtZV9kYXJrKCkKYGBgCgoK